import Vue from 'vue'
import App from './App'
import helper from 'common/helper.js';
import uView from "./common/uview-ui";
import router from './router'
import { RouterMount } from 'uni-simple-router'
import sunUiOos from './components/sunui-upimg/sunui-upimg-alioos.vue'
Vue.component('sunui-upoos',sunUiOos)
// 引入插件
Vue.use(uView);

import share  from "common/share.js"
Vue.mixin(share)

// 处理防抖
import common from './common/common.js';
Vue.prototype.$noMultipleClicks = common.noMultipleClicks;
 
import request from '@/common/request.js'
uni.$showMsg = (title = "数据加载失败!", duration = 2000) => {
	uni.showToast({
		title,
		duration,
		icon: "none"
	})
}
uni.$showLoading = (title = '') => {
	uni.showLoading({
		title,
		mask: true
	});
}

// 全局配置
request.setConfig({
	// baseUrl: 'https://jiaxiao.qianjitianxia.com', // 此为测试地址，需加入到域名白名单，或者更改为您自己的线上地址即可
	baseUrl: 'https://qiche.qianjiwl.xyz/',
	dataType: 'json', // 可删除，默认为json
	responseType: 'text', // 可删除，默认为text
	// 设置请求头，支持所有请求头设置，也可不设置，去掉header就行
	// header: {
	//   'token': 'token from global',
	//   'content-type': 'application/json' 
	// }
})

// 设置请求拦截器
request.interceptors.request(config => {
	// 配置参数和全局配置相同，此优先级最高，会覆盖在其他地方的相同配置参数

	// 追加请求头，推荐
	config.header['content-type'] = 'application/json';
	// config.header['content-type'] = 'application/x-www-form-urlencoded';
	config.header['XX-Wxapp-AppId'] = 'helper.appid';
	config.header['XX-Device-Type'] = 'wxapp';
	
	//从缓存中取出token
	const token = uni.getStorageSync('token')
	
	
	// helper.myToke
	console.log('!helper.myToke',token)
	if (!token) {
		uni.getStorage({
			key: 'token',
			success(res) {
				if (res.data == null || res.data.length < 1) {
					console.log('有token,去登陆1');
					return router.push({
						name: 'index'
					})
				} 
			},
			// fail() {
			// 	console.log('没有token,去登陆2');
			// 	return router.push({
			// 		name: 'login'
			// 	})
			// }
		})
	}
	// config.header['token'] = helper.myToken;
	config.header['token'] = uni.getStorageSync('token')

	// 覆盖请求头
	// config.header = {
	// 'content-type': 'application/json',
	// 'token': 'token from interceptors'
	// }

	// return false; // 终止请求
	// return Promise.reject('error from request interceptors'); // 向外层抛出错误，用catch捕获
	return config; // 返回修改后的配置，如未修改也需添加这行
})

// 设置响应拦截器
request.interceptors.response(res => {
	// 接收请求，执行响应操作
	// 您的逻辑......

	// return false;    // 阻止返回,页面不会接收返回值
	// return {message: '自定义值，来自拦截器'};   // 返回您自定义的值，将覆盖原始返回值
	// return Promise.reject('error from response interceptors') // 向外层抛出错误，用catch捕获
	console.log('re11111111111111',res)
	if (res.data.code == 401) {
		uni.navigateTo({
		    url: '/pages/index/login'
		});
		
	};

	return res; // 原样返回
})

// // 挂载到全局vue实例上，在页面中可以使用this.$request调用request实例下相应方法
Vue.prototype.$request = request;
Vue.config.productionTip = false

App.mpType = 'app'

const app = new Vue({
    ...App
})
app.$mount()
